<?php
/**
 * 加群小程序微信群类文件
 * 作者：刘单风
 * 最后修改时间：2019-01-16
 * 版权：医库PHP小组
 */

namespace app\model;
use think\Model;
use think\Db;

class Wechatgroups extends Model
{

    //科室详情
    public function depdetail($where)
    {
        $depdetail = Db::name('wechat_deps')
            ->where($where)
            ->find();
        return $depdetail;
    }

    //科室更新
    public function depupdate($data,$where)
    {
        Db::name('wechat_deps')
            ->where($where)
            ->update($data);
    }

    //科室新增
    public function depinsert($data)
    {
        Db::name('wechat_deps')
            ->insert($data);
    }

    //删除科室
    public function depdelete($id)
    {
        Db::name('wechat_deps')
            ->where('id', $id)
            ->delete();
        //查询此科室下面是否有子级科室
        $data = Db::name('wechat_deps')
            ->where('father_id', $id)
            ->select();
        if ($data) {
            //删除子级科室
            Db::name('wechat_deps')
                ->where('father_id', $id)
                ->delete();
        }
    }

    //科室列表数据
    public function deplist($datatype=0)
    {
        $depdata = Db::name('wechat_deps')
            ->field('id,dep_name')
            ->where('father_id', 0)
            ->select();
        if (empty($datatype)) {
            for ($i = 0; $i < count($depdata); $i++) {
                //获取子级科室数据
                $child = Db::name('wechat_deps')
                    ->field('id,dep_name')
                    ->where('father_id', $depdata[$i]['id'])
                    ->select();
                $depdata[$i]['childs'] = $child;
            }
        }

        return $depdata;
    }

    //获取二级科室
    public function depchild($depid)
    {
        $depdata = Db::name('wechat_deps')
            ->field('id,dep_name')
            ->where('father_id', $depid)
            ->select();
        return $depdata;
    }

    //城市列表数据
    public function citylist($where)
    {
        $citydata = Db::name('wechat_citys')
            ->where('father_id', 0)
            ->where($where)
            ->paginate(3, false, ['query' => request()->param()])->each(function ($item, $key) {
                //获取子级科室数据
                $child = Db::name('wechat_citys')
                    ->where('father_id', $item['id'])
                    ->select();
                $item['childs'] = $child;
                return $item;
            });

        return $citydata;
    }

    public function citydata($where)
    {
        $citydata = Db::name('wechat_citys')
            ->where($where)
            ->select();
        return $citydata;
    }

    //城市信息操作
    public function cityOper($data,$where)
    {
        Db::name('wechat_citys')
            ->where($where)
            ->update($data);
    }

    //微信群列表
    public function groupList($where)
    {
        $groupdata = Db::table('wechat_groups')
            ->where($where)
            ->paginate(20, false, ['query' => request()->param()])->each(function ($item, $key) {
                //查看是否过期
                if($item['deadline']<=time()){
                    $item['is_overdue']=1;
                }else{
                    $item['is_overdue']=0;
                }
                //获取科室名称
                $dep_name = Db::name('wechat_deps')
                    ->field('dep_name,father_id')
                    ->where('id', $item['dep_id'])
                    ->find();
                //获取上级科室
                $fdepname = Db::name('wechat_deps')
                    ->where('id', $dep_name['father_id'])
                    ->value('dep_name');
                $item['dep_name'] = $fdepname . "-" . $dep_name['dep_name'];
                //获取省名称
                $prov_name = Db::name('wechat_citys')
                    ->where('id', $item['prov_id'])
                    ->value('city_name');
                //获取城市名称
                $cityname = Db::name('wechat_citys')
                    ->where('id', $item['city_id'])
                    ->value('city_name');
                $item['prov_name'] = $prov_name . ($cityname ? "-" . $cityname : "");
                return $item;
            });
        return $groupdata;
    }

    //微信群详细信息
    public function groupDetail($where)
    {
        $detail = Db::name('wechat_groups')
            ->where($where)
            ->find();
        if($detail){
            //获取科室的父级id
            $fdepid = Db::name('wechat_deps')
                ->where('id', $detail['dep_id'])
                ->value('father_id');
            $detail['fdep_id'] = $fdepid;
        }
        return $detail;
    }

    //微信群更新
    public function groupUpdate($data,$where)
    {
        Db::name('wechat_groups')
            ->where($where)
            ->update($data);
    }

    //微信群新增
    public function groupInsert($data)
    {
        Db::name('wechat_groups')
            ->insertGetId($data);
    }

    //删除微信群
    public function groupDel($id)
    {
        if ($id) {
            Db::name('wechat_groups')
                ->where('id', $id)
                ->delete();
        }
    }

    //banner列表数据
    public function bannerList()
    {
        $data = Db::name('wechat_banners')
            ->order('id desc')
            ->paginate(20);
        return $data;
    }

    //banner详情数据
    public function bannerdetail($where)
    {
        $detail = Db::name('wechat_banners')
            ->where($where)
            ->find();
        return $detail;
    }

    //banner数据更新
    public function bannerUpdate($data,$where)
    {
        Db::name('wechat_banners')
            ->where($where)
            ->update($data);
    }

    //banner新增
    public function bannerInsert($data)
    {
        Db::name('wechat_banners')
            ->insertGetId($data);
    }

    //删除banner
    public function bannerDel($id)
    {
        if ($id) {
            Db::name('wechat_banners')
                ->where('id', $id)
                ->delete();
        }
    }
}